#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include"background.h"
#include<stage.h>
#include<door.h>
#include<monster.h>
#include<QVector>
#include"hero.h"
#include<QKeyEvent>
#include"config.h"
#include"windpan.h"
#include"store.h"
#include"elder.h"
#include"trader.h"
#include"save.h"
#include"monsterquery.h"

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    Widget(int floor,hero h,int type);
    ~Widget();

    void initWindow();
    void initMap();
    void initElement();
    void modifyElement(int floor,int i,int j);
    void initHero(hero h);
    void initPos(int floor,int type,hero h);
    void heroMove(int row,int col);
    void npcEvent(npc &n);
    void paintEvent(QPaintEvent *);
    void keyPressEvent(QKeyEvent *event);
    void trader_2();
    void elder_2();
    void trader_15(npc &n);
    void elder_15(npc &n);
    void faily(npc &n);
    void stealer(npc &n);
    void priness();
    hero heros;
    backGround map[11][11];
    stage stages[11][11];
    door doors[11][11];
    monster monsters[11][11];
    npc npcs[11][11];
    int _floor;
    config c;
    store *s;
    elder *e;
    trader *t;

private slots:
    void changeFloor(int i);
    void selectStore(int i);
    void selectElder(int i);
    void selectTrader(int i);

};

#endif // WIDGET_H
